package com.etime.shycourse.services.interfaces;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.etime.shycourse.pojo.Course;
import com.etime.shycourse.pojo.Coursetype;

import java.util.List;

/**
 * <p>
 * 课程服务类
 * </p>
 *
 * @author wb
 * @since 2021-12-17
 */
public interface WxCourseServices {

    /**
     * 精品推荐 Recommended
     * 查询条件：
     * 是否推荐（courserecommended） = 1
     * 课程状态（coursestate） = 1
     * 课程审核状态（courseaudit） = 1
     * 课程评分（coursescore）>= 9
     * 排序方式条件：按照课程评分（coursescore）降序排列，按照课程排序（coursesort）降序排列。
     * 然后取前5条记录。
     */
    List<Course> selectCourseRecommended();

    /**
     * 课程推荐
     * <p>
     * 取前10条记录。
     */
    List<Course> selectCourseRecommendation();

    /**
     * 课程类型
     * 初始化课程列表显示
     * 课程的分类
     *
     * @return List<Course>
     */
    List<Coursetype> selectCourseTypAll();

    /**
     * 课程分类 全部的课程
     * <p>
     * 进入到本页面后，
     * 功能1、默认显示“全部”的课程。
     * 功能2、课程列表根据左边“分类”进行显示。 课程类型id（coursetypeid） = 左边所选择的分类的id
     * 功能3、用户根据课程标题（coursetitle）进行模糊查询
     * <p>
     *
     * @param course 课程类型id（coursetypeid） = 左边所选择的分类的id
     *               选择条件 课程大类型 coursetypeid
     *               用户根据课程标题（coursetitle）进行模糊查询
     * @return Page<Course>
     */

    Page<Course> selectCoursePageBy(Course course, Long pagenum, Long pagesize);

}
